package cn.fl.mcr.service;

import java.util.HashMap;
import java.util.List;

import cmm.mid.core.framework.dto.DataResultDTO;
import cmm.mid.core.framework.page.KeyValueVO;
import cn.cmm.base.framework.exception.BaseException;
import cn.fl.mcr.vo.McrBillMVO;
import cn.lionbridgecapital.loan.model.base.Pager;
import cn.lionbridgecapital.loan.model.condition.GraphicReportQC;
import cn.lionbridgecapital.loan.model.condition.McrBillMQC;
import cn.lionbridgecapital.loan.model.po.McrBillM;

/**
 * @Description: 小贷账单主表 客户端服务层接口
 * 业务层方法名称前缀：
 * 新增：add*
 * 删除：remove*
 * 修改：modify*
 * 批量：batch*
 * 查询对象：select* get*
 * 查询集合：search*
 */
public interface IMcrBillMService {
	
	/**
	 * 获取唯一对象
	 * @param id 主键
	 * @return 对象DTO
	 */
	public McrBillMVO selectById(Long id) throws BaseException;
	
    /**
     * 分页查询所有
     * @param page
     * @return
     */
    public Pager searchListPage(Pager page) throws BaseException;
    
    /**
     * 根据条件查询所有
     * @param condition
     * @return
     */
    public List<McrBillMVO> searchList(McrBillMQC condition) throws BaseException;
    
    /**
     * 查询*数据字典
     * @param groupCd 组代码
     * @return List<KeyValueVO>
     */
    public List<KeyValueVO> searchCdList(String groupCd);

    /**
     * 分页查询所有小贷逾期账单
     * @param page
     * @return
     */
    public Pager searchOvdListPage(Pager page) throws BaseException;

    /**
     * 根据条件查询所有
     * @param condition
     * @return
     */
    public List<McrBillMVO> searchList(cn.fl.mcr.condition.McrBillMQC condition) throws BaseException;

    /**
     * 推送还款计划
     * @return
     * @throws BaseException
     */
    public DataResultDTO pushRepaymentPlan()throws BaseException;
    
    /**
     * 
     * @Title: queryMcrBillMLActCrAmt   
     * @Description: 查询某资方某时间段内的放款账单信息 
     * @param: @param condition
     * @param: @return
     * @param: @throws BaseException      
     * @return: List<McrBillM>      
     * @throws
     */
    List<McrBillM> queryMcrBillMLActCrAmt(GraphicReportQC condition) throws BaseException;
    
    /**
     * 
     * @Title: selectRecvRent   
     * @Description: T查询日期区间还款金额
     * @param: @param condition
     * @param: @return
     * @param: @throws BaseException      
     * @return: HashMap<String,Object>      
     * @throws
     */
    public HashMap<String, Object> selectRecvRent(GraphicReportQC condition) throws BaseException;
}
